<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>

<meta charset="utf-8">
<meta name="generator" content="quarto-1.7.32">

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">


<title>news – modelsummary: Data and Model Summaries in R</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
  width: 0.8em;
  margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */ 
  vertical-align: middle;
}
</style>


<script src="site_libs/quarto-nav/quarto-nav.js"></script>
<script src="site_libs/quarto-nav/headroom.min.js"></script>
<script src="site_libs/clipboard/clipboard.min.js"></script>
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="site_libs/quarto-search/fuse.min.js"></script>
<script src="site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="./">
<link href="./LICENSE.html" rel="next">
<link href="./man/update_modelsummary.html" rel="prev">
<script src="site_libs/quarto-html/quarto.js" type="module"></script>
<script src="site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
<script src="site_libs/quarto-html/popper.min.js"></script>
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="site_libs/quarto-html/anchor.min.js"></script>
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="site_libs/quarto-html/quarto-syntax-highlighting-37eea08aefeeee20ff55810ff984fec1.css" rel="stylesheet" id="quarto-text-highlighting-styles">
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="site_libs/bootstrap/bootstrap-555d7fa6eb067a0c9d334ac7ef1a20f4.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
<script id="quarto-search-options" type="application/json">{
  "location": "navbar",
  "copy-button": false,
  "collapse-after": 3,
  "panel-placement": "end",
  "type": "overlay",
  "limit": 50,
  "keyboard-shortcut": [
    "f",
    "/",
    "s"
  ],
  "show-item-context": false,
  "language": {
    "search-no-results-text": "No results",
    "search-matching-documents-text": "matching documents",
    "search-copy-link-title": "Copy link to search",
    "search-hide-matches-text": "Hide additional matches",
    "search-more-match-text": "more match in this document",
    "search-more-matches-text": "more matches in this document",
    "search-clear-button-title": "Clear",
    "search-text-placeholder": "",
    "search-detached-cancel-button-title": "Cancel",
    "search-submit-button-title": "Submit",
    "search-label": "Search"
  }
}</script>


</head>

<body class="nav-sidebar floating nav-fixed quarto-light">

<div id="quarto-search-results"></div>
  <header id="quarto-header" class="headroom fixed-top">
    <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
      <div class="navbar-container container-fluid">
      <div class="navbar-brand-container mx-auto">
    <a class="navbar-brand" href="./index.html">
    <span class="navbar-title">modelsummary: Data and Model Summaries in R</span>
    </a>
  </div>
            <div id="quarto-search" class="" title="Search"></div>
          <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" role="menu" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
  <span class="navbar-toggler-icon"></span>
</button>
          <div class="collapse navbar-collapse" id="navbarCollapse">
            <ul class="navbar-nav navbar-nav-scroll ms-auto">
  <li class="nav-item">
    <a class="nav-link active" href="./vignettes/get_started.html" aria-current="page"> 
<span class="menu-text">Get started</span></a>
  </li>  
  <li class="nav-item compact">
    <a class="nav-link" href="https://github.com/vincentarelbundock/modelsummary/"> <i class="bi bi-github" role="img" aria-label="modelsummary GitHub">
</i> 
<span class="menu-text"></span></a>
  </li>  
</ul>
          </div> <!-- /navcollapse -->
            <div class="quarto-navbar-tools">
</div>
      </div> <!-- /container-fluid -->
    </nav>
  <nav class="quarto-secondary-nav">
    <div class="container-fluid d-flex">
      <button type="button" class="quarto-btn-toggle btn" data-bs-toggle="collapse" role="button" data-bs-target=".quarto-sidebar-collapse-item" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
        <i class="bi bi-layout-text-sidebar-reverse"></i>
      </button>
        <nav class="quarto-page-breadcrumbs" aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="./NEWS.html">News</a></li></ol></nav>
        <a class="flex-grow-1" role="navigation" data-bs-toggle="collapse" data-bs-target=".quarto-sidebar-collapse-item" aria-controls="quarto-sidebar" aria-expanded="false" aria-label="Toggle sidebar navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">      
        </a>
    </div>
  </nav>
</header>
<!-- content -->
<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-article page-navbar">
<!-- sidebar -->
  <nav id="quarto-sidebar" class="sidebar collapse collapse-horizontal quarto-sidebar-collapse-item sidebar-navigation floating overflow-auto">
    <div class="sidebar-menu-container"> 
    <ul class="list-unstyled mt-1">
        <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./vignettes/get_started.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text">Getting started</span></a>
  </div>
</li>
        <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./vignettes/datasummary.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text">Data Summaries</span></a>
  </div>
</li>
        <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./vignettes/modelsummary.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text">Model Summaries</span></a>
  </div>
</li>
        <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./vignettes/modelplot.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text">Model Plots</span></a>
  </div>
</li>
        <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./vignettes/modelsummary_extension.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text">Custom</span></a>
  </div>
</li>
        <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./vignettes/appearance.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text">Themes and Styles</span></a>
  </div>
</li>
        <li class="sidebar-item sidebar-item-section">
      <div class="sidebar-item-container"> 
            <a class="sidebar-item-text sidebar-link text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-1" role="navigation" aria-expanded="false">
 <span class="menu-text">Functions</span></a>
          <a class="sidebar-item-toggle text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-1" role="navigation" aria-expanded="false" aria-label="Toggle section">
            <i class="bi bi-chevron-right ms-2"></i>
          </a> 
      </div>
      <ul id="quarto-sidebar-section-1" class="collapse list-unstyled sidebar-section depth1 ">  
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/modelsummary.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>modelsummary</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/modelplot.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>modelplot</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/datasummary.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>datasummary</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/datasummary_skim.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>datasummary_skim</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/datasummary_balance.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>datsummary_balance</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/datasummary_crosstab.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>datasummary_crosstab</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/datasummary_correlation.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>datasummary_correlation</code></span></a>
  </div>
</li>
          <li class="sidebar-item sidebar-item-section">
      <div class="sidebar-item-container"> 
            <a class="sidebar-item-text sidebar-link text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-2" role="navigation" aria-expanded="false">
 <span class="menu-text">Formatting</span></a>
          <a class="sidebar-item-toggle text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-2" role="navigation" aria-expanded="false" aria-label="Toggle section">
            <i class="bi bi-chevron-right ms-2"></i>
          </a> 
      </div>
      <ul id="quarto-sidebar-section-2" class="collapse list-unstyled sidebar-section depth2 ">  
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/fmt_decimal.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>fmt_decimal</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/fmt_equivalence.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>fmt_equivalence</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/fmt_sci.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>fmt_sci</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/fmt_significant.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>fmt_significant</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/fmt_sprintf.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>fmt_sprintf</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/fmt_statistic.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>fmt_statistic</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/fmt_term.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>fmt_term</code></span></a>
  </div>
</li>
      </ul>
  </li>
          <li class="sidebar-item sidebar-item-section">
      <div class="sidebar-item-container"> 
            <a class="sidebar-item-text sidebar-link text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-3" role="navigation" aria-expanded="false">
 <span class="menu-text">Utilities</span></a>
          <a class="sidebar-item-toggle text-start collapsed" data-bs-toggle="collapse" data-bs-target="#quarto-sidebar-section-3" role="navigation" aria-expanded="false" aria-label="Toggle section">
            <i class="bi bi-chevron-right ms-2"></i>
          </a> 
      </div>
      <ul id="quarto-sidebar-section-3" class="collapse list-unstyled sidebar-section depth2 ">  
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/get_estimates.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>get_estimates</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/get_gof.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>get_gof</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/coef_rename.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>coef_rename</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/dvnames.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>dvnames</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/gof_map.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>gof_map</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/datasummary_correlation_format.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>datasummary_correlation_format</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/config_modelsummary.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>config_modelsummary</code></span></a>
  </div>
</li>
          <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./man/update_modelsummary.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text"><code>update_modelsummary</code></span></a>
  </div>
</li>
      </ul>
  </li>
      </ul>
  </li>
        <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./NEWS.html" class="sidebar-item-text sidebar-link active">
 <span class="menu-text">News</span></a>
  </div>
</li>
        <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./LICENSE.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text">License</span></a>
  </div>
</li>
        <li class="sidebar-item">
  <div class="sidebar-item-container"> 
  <a href="./CITATION.html" class="sidebar-item-text sidebar-link">
 <span class="menu-text">Citation</span></a>
  </div>
</li>
    </ul>
    </div>
</nav>
<div id="quarto-sidebar-glass" class="quarto-sidebar-collapse-item" data-bs-toggle="collapse" data-bs-target=".quarto-sidebar-collapse-item"></div>
<!-- margin-sidebar -->
    <div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
        <nav id="TOC" role="doc-toc" class="toc-active">
    <h2 id="toc-title">On this page</h2>
   
  <ul>
  <li><a href="#news" id="toc-news" class="nav-link active" data-scroll-target="#news">News</a>
  <ul class="collapse">
  <li><a href="#section" id="toc-section" class="nav-link" data-scroll-target="#section">2.5.0</a></li>
  <li><a href="#section-1" id="toc-section-1" class="nav-link" data-scroll-target="#section-1">2.4.0</a></li>
  <li><a href="#section-2" id="toc-section-2" class="nav-link" data-scroll-target="#section-2">2.3.0</a></li>
  <li><a href="#section-3" id="toc-section-3" class="nav-link" data-scroll-target="#section-3">2.2.0</a></li>
  <li><a href="#section-4" id="toc-section-4" class="nav-link" data-scroll-target="#section-4">2.1.1</a></li>
  <li><a href="#section-5" id="toc-section-5" class="nav-link" data-scroll-target="#section-5">2.1.0</a></li>
  <li><a href="#section-6" id="toc-section-6" class="nav-link" data-scroll-target="#section-6">2.0.0</a></li>
  <li><a href="#section-7" id="toc-section-7" class="nav-link" data-scroll-target="#section-7">1.4.5</a></li>
  <li><a href="#section-8" id="toc-section-8" class="nav-link" data-scroll-target="#section-8">1.4.4</a></li>
  <li><a href="#section-9" id="toc-section-9" class="nav-link" data-scroll-target="#section-9">1.4.3</a></li>
  <li><a href="#section-10" id="toc-section-10" class="nav-link" data-scroll-target="#section-10">1.4.2</a></li>
  <li><a href="#section-11" id="toc-section-11" class="nav-link" data-scroll-target="#section-11">1.4.1</a></li>
  <li><a href="#section-12" id="toc-section-12" class="nav-link" data-scroll-target="#section-12">1.4.0</a></li>
  <li><a href="#section-13" id="toc-section-13" class="nav-link" data-scroll-target="#section-13">1.3.0</a></li>
  <li><a href="#section-14" id="toc-section-14" class="nav-link" data-scroll-target="#section-14">1.2.0</a></li>
  <li><a href="#section-15" id="toc-section-15" class="nav-link" data-scroll-target="#section-15">1.1.0</a></li>
  <li><a href="#section-16" id="toc-section-16" class="nav-link" data-scroll-target="#section-16">1.0.2</a></li>
  <li><a href="#section-17" id="toc-section-17" class="nav-link" data-scroll-target="#section-17">1.0.1</a></li>
  <li><a href="#section-18" id="toc-section-18" class="nav-link" data-scroll-target="#section-18">1.0.0</a></li>
  <li><a href="#section-19" id="toc-section-19" class="nav-link" data-scroll-target="#section-19">0.11.1</a></li>
  <li><a href="#section-20" id="toc-section-20" class="nav-link" data-scroll-target="#section-20">0.11.0</a></li>
  <li><a href="#section-21" id="toc-section-21" class="nav-link" data-scroll-target="#section-21">0.10.0</a></li>
  <li><a href="#section-22" id="toc-section-22" class="nav-link" data-scroll-target="#section-22">0.9.6</a></li>
  <li><a href="#section-23" id="toc-section-23" class="nav-link" data-scroll-target="#section-23">0.9.5</a></li>
  <li><a href="#section-24" id="toc-section-24" class="nav-link" data-scroll-target="#section-24">0.9.4</a></li>
  <li><a href="#section-25" id="toc-section-25" class="nav-link" data-scroll-target="#section-25">0.9.3</a></li>
  <li><a href="#section-26" id="toc-section-26" class="nav-link" data-scroll-target="#section-26">0.9.2</a></li>
  <li><a href="#section-27" id="toc-section-27" class="nav-link" data-scroll-target="#section-27">0.9.1</a></li>
  <li><a href="#section-28" id="toc-section-28" class="nav-link" data-scroll-target="#section-28">0.8.1</a></li>
  <li><a href="#section-29" id="toc-section-29" class="nav-link" data-scroll-target="#section-29">0.8.0</a></li>
  <li><a href="#section-30" id="toc-section-30" class="nav-link" data-scroll-target="#section-30">0.7.0</a></li>
  <li><a href="#section-31" id="toc-section-31" class="nav-link" data-scroll-target="#section-31">0.6.6</a></li>
  <li><a href="#section-32" id="toc-section-32" class="nav-link" data-scroll-target="#section-32">0.6.5</a></li>
  <li><a href="#section-33" id="toc-section-33" class="nav-link" data-scroll-target="#section-33">0.6.4</a></li>
  <li><a href="#section-34" id="toc-section-34" class="nav-link" data-scroll-target="#section-34">0.6.3</a></li>
  <li><a href="#section-35" id="toc-section-35" class="nav-link" data-scroll-target="#section-35">0.6.2</a></li>
  <li><a href="#section-36" id="toc-section-36" class="nav-link" data-scroll-target="#section-36">0.6.1</a></li>
  <li><a href="#section-37" id="toc-section-37" class="nav-link" data-scroll-target="#section-37">0.6.0</a></li>
  <li><a href="#section-38" id="toc-section-38" class="nav-link" data-scroll-target="#section-38">0.5.1</a></li>
  <li><a href="#section-39" id="toc-section-39" class="nav-link" data-scroll-target="#section-39">0.5.0</a></li>
  <li><a href="#section-40" id="toc-section-40" class="nav-link" data-scroll-target="#section-40">0.4.1</a></li>
  <li><a href="#section-41" id="toc-section-41" class="nav-link" data-scroll-target="#section-41">0.4.0</a></li>
  <li><a href="#section-42" id="toc-section-42" class="nav-link" data-scroll-target="#section-42">0.3.0</a></li>
  <li><a href="#section-43" id="toc-section-43" class="nav-link" data-scroll-target="#section-43">0.2.1</a></li>
  <li><a href="#section-44" id="toc-section-44" class="nav-link" data-scroll-target="#section-44">0.2.0</a></li>
  <li><a href="#section-45" id="toc-section-45" class="nav-link" data-scroll-target="#section-45">0.1.0</a></li>
  </ul></li>
  </ul>
</nav>
    </div>
<!-- main -->
<main class="content" id="quarto-document-content"><header id="title-block-header" class="quarto-title-block"></header>




<section id="news" class="level1">
<h1>News</h1>
<section id="section" class="level2">
<h2 class="anchored" data-anchor-id="section">2.5.0</h2>
<ul>
<li>Quarto: better format detection when users explicitly use <code>output="tinytable"</code>. Thanks to <a href="https://github.com/mvuorre"><span class="citation" data-cites="mvuorre">@mvuorre</span></a> for report [#886](https://github.com/vincentarelbundock/modelsummary//issues/886).</li>
<li>More flexible in allowing duplicate labels with <code>coef_rename</code> when users specify <code>component</code> in the <code>shape</code> argument. Thanks to <a href="https://github.com/raffaem"><span class="citation" data-cites="raffaem">@raffaem</span></a> for report [#892](https://github.com/vincentarelbundock/modelsummary//issues/892).</li>
<li>Miscellaneous docs improvements.</li>
<li><code>flextable</code> output uses <code>hline</code> instead of <code>border</code>. This fixes report [#693](https://github.com/vincentarelbundock/modelsummary//issues/693) from the <code>flextable</code> Github issue tracker. Thanks to <a href="https://github.com/davidgohel"><span class="citation" data-cites="davidgohel">@davidgohel</span></a> for the fix.</li>
<li>Result of <code>get_estimates()</code>, <code>get_gof()</code> and <code>modelsummary()</code> gets a “backend” attribute with info about the extraction method. Thanks to <a href="https://github.com/raffaem"><span class="citation" data-cites="raffaem">@raffaem</span></a> for contribution [#914](https://github.com/vincentarelbundock/modelsummary//issues/914).</li>
<li>Result of <code>get_estimates()</code> and <code>get_gof()</code> gets a “backend” attribute with info about the extraction method. Thanks to <a href="https://github.com/raffaem"><span class="citation" data-cites="raffaem">@raffaem</span></a> for contribution [#914](https://github.com/vincentarelbundock/modelsummary//issues/914).</li>
<li>Update to <code>tinytable</code> 0.13.0, which fixes Issue [#912](https://github.com/vincentarelbundock/modelsummary//issues/912).</li>
<li><code>flextable</code>: Added support for spanning headers in <code>modelsummary()</code>, <code>datasummary()</code>, and other functions, matching the functionality available in <code>tinytable</code>.</li>
<li>Dispersion parameters are no longer exponentiated when <code>exponentiate=TRUE</code>. Thanks to <a href="https://github.com/raffaem"><span class="citation" data-cites="raffaem">@raffaem</span></a> for report [#896](https://github.com/vincentarelbundock/modelsummary//issues/896).</li>
</ul>
</section>
<section id="section-1" class="level2">
<h2 class="anchored" data-anchor-id="section-1">2.4.0</h2>
<p>New:</p>
<ul>
<li><code>add_rows</code>: The position of new rows can be set using a “position” attribute. Previously, this only accepted integers. Now we accept string shortcuts:
<ul>
<li><code>attr(new_rows, "coef_start")</code></li>
<li><code>attr(new_rows, "coef_end")</code></li>
<li><code>attr(new_rows, "gof_start")</code></li>
<li><code>attr(new_rows, "gof_end")</code></li>
</ul></li>
<li>Allow <code>tinytable</code>-style note specification: <code>notes=list(a = list(i = 0:1, j = 1, text = "Blah."))</code>. Thanks to <a href="https://github.com/sverrirarnors"><span class="citation" data-cites="sverrirarnors">@sverrirarnors</span></a> for feature request [#867](https://github.com/vincentarelbundock/modelsummary//issues/867).</li>
<li><code>exponentiate=TRUE</code> no longer exponentiates parameters that are marked as “random” in the “effect” column when calling <code>get_estimates()</code>. Thanks to <a href="https://github.com/orvaquim"><span class="citation" data-cites="orvaquim">@orvaquim</span></a> for report [#878](https://github.com/vincentarelbundock/modelsummary//issues/878).</li>
</ul>
<p>Bug:</p>
<ul>
<li><code>modelplot()</code> accepts <code>linewidth</code> argument. Thanks to <a href="https://github.com/trekonom"><span class="citation" data-cites="trekonom">@trekonom</span></a> for report [#861](https://github.com/vincentarelbundock/modelsummary//issues/861).</li>
<li>Misplaced horizontal rule with <code>add_rows</code>. Thanks to <a href="https://github.com/judgelord"><span class="citation" data-cites="judgelord">@judgelord</span></a> for report [#875](https://github.com/vincentarelbundock/modelsummary//issues/875).</li>
<li>Fixed but in <code>fmt_equivalence()</code>. Thanks to Nicholas Astier for the report and bugfix.</li>
<li>Rolled back the change about centering GOF in dot-aligned columns. This created many problems with inconsistent font display. The alternative solution with <code>tinytable::style_tt()</code> is now documented in a the Themes and Styles vignette.</li>
<li>Custom stars did not work in <code>datasummary_correlation()</code>. Thanks to <a href="https://github.com/mvuorre"><span class="citation" data-cites="mvuorre">@mvuorre</span></a> for report [#860](https://github.com/vincentarelbundock/modelsummary//issues/860).</li>
</ul>
</section>
<section id="section-2" class="level2">
<h2 class="anchored" data-anchor-id="section-2">2.3.0</h2>
<p>Breaking change:</p>
<ul>
<li><code>modelsummary(models, shape = "rbind")</code> does not insert panel names by default. Instead, the panel names are taken from the names of the top level list of lists. Thanks to <a href="https://github.com/raffaem"><span class="citation" data-cites="raffaem">@raffaem</span></a> for feature request [#849](https://github.com/vincentarelbundock/modelsummary//issues/849).</li>
</ul>
<p>Bugs:</p>
<ul>
<li>Stars note in <code>kableExtra</code> escaped <code>\num{}</code> in LaTeX.</li>
<li>Bad horizontal rule placement with <code>add_rows</code>. Thanks to <a href="https://github.com/pyoungblood"><span class="citation" data-cites="pyoungblood">@pyoungblood</span></a> for Issue [#813](https://github.com/vincentarelbundock/modelsummary//issues/813).</li>
<li><code>shape</code> creates bad columns when model names include spaces. Thanks to <a href="https://github.com/daSilva5"><span class="citation" data-cites="daSilva5">@daSilva5</span></a> for report [#816](https://github.com/vincentarelbundock/modelsummary//issues/816).</li>
<li>Center align GOF in dot-aligned columns. Thanks to <a href="https://github.com/svraka"><span class="citation" data-cites="svraka">@svraka</span></a> for report [#827](https://github.com/vincentarelbundock/modelsummary//issues/827).</li>
<li>Weights, blocks, and clusters ignored by <code>datasummary_balance()</code>. Thanks to <a href="https://github.com/kleuveld"><span class="citation" data-cites="kleuveld">@kleuveld</span></a> for report [#840](https://github.com/vincentarelbundock/modelsummary//issues/840).</li>
</ul>
<p>New features:</p>
<ul>
<li>Nearly all arguments can now be set using global options.</li>
<li>Support for variable labels supplied by the <code>labelled</code> and <code>sjlabelled</code> packages.</li>
<li>Negative sign is displayed in front of rounded decimal figures like 0.00. Thanks to <a href="https://github.com/ktheile"><span class="citation" data-cites="ktheile">@ktheile</span></a> for feature request [#849](https://github.com/vincentarelbundock/modelsummary//issues/849).</li>
</ul>
</section>
<section id="section-3" class="level2">
<h2 class="anchored" data-anchor-id="section-3">2.2.0</h2>
<ul>
<li>Bump minimum version requirement for <code>tinytable</code>, <code>parameters</code>, and <code>insight</code> dependencies.</li>
<li><code>coef_rename()</code> gets a <code>poly=TRUE</code> argument to rename <code>poly(x, 2)</code>-style coefficients. Thanks to <a href="https://github.com/mccarthy-m-g"><span class="citation" data-cites="mccarthy-m-g">@mccarthy-m-g</span></a> for code contribution [#778](https://github.com/vincentarelbundock/modelsummary//issues/778).</li>
<li><code>get_gof()</code>: <code>logLik</code> column converted to numeric for consistent types. Issue 649 reported on the <code>mice</code> Github.</li>
<li><code>kableExtra</code> update the <code>siunitx</code> commands for <code>d</code> columns.</li>
<li><code>kableExtra</code> escapes footnotes in HTML when <code>output="kableExtra")</code>. Thanks to <a href="https://github.com/dmurdoch"><span class="citation" data-cites="dmurdoch">@dmurdoch</span></a> and <a href="https://github.com/michaelherndon97"><span class="citation" data-cites="michaelherndon97">@michaelherndon97</span></a> for report [#793](https://github.com/vincentarelbundock/modelsummary//issues/793).</li>
<li>New <code>fmt_equivalence()</code> function to implement the rounding suggestion of Astier &amp; Wolak (2024). Thanks to Nicolas Astier for code prototype.</li>
<li>Fix partial match warnings for some <code>datasummary_*()</code> tables. No change in behavior. Thanks to <a href="https://github.com/fkohrt"><span class="citation" data-cites="fkohrt">@fkohrt</span></a> for report [#804](https://github.com/vincentarelbundock/modelsummary//issues/804).</li>
</ul>
<p>Bugs:</p>
<ul>
<li>Stars footnotes get properly escaped in some LaTeX configurations. Thanks to <a href="https://github.com/etiennebacher"><span class="citation" data-cites="etiennebacher">@etiennebacher</span></a> for report [#798](https://github.com/vincentarelbundock/modelsummary//issues/798).</li>
<li><code>datasummary_*()</code> functions can be called as arguments in another <code>datasummary_*()</code> arguments, like <code>add_columns</code>. Thanks to <a href="https://github.com/mronkko"><span class="citation" data-cites="mronkko">@mronkko</span></a> for report [#799](https://github.com/vincentarelbundock/modelsummary//issues/799)</li>
</ul>
</section>
<section id="section-4" class="level2">
<h2 class="anchored" data-anchor-id="section-4">2.1.1</h2>
<ul>
<li>Documentation improvements</li>
<li>Warning when users use <code>caption</code> instead of <code>title</code>. Inconsistency with respect to <code>tinytable</code>.</li>
<li>Improved documentation for <code>title</code> argument.</li>
<li><code>htest</code> workaround.</li>
</ul>
<p>Bugs:</p>
<ul>
<li><code>datasummary_correlation()</code> respects the <code>escape</code> argument. Issue [#772](https://github.com/vincentarelbundock/modelsummary//issues/772).</li>
<li><code>datasummary_correlation()</code> supports <code>data.table</code> objects. Issue [#771](https://github.com/vincentarelbundock/modelsummary//issues/771).</li>
</ul>
</section>
<section id="section-5" class="level2">
<h2 class="anchored" data-anchor-id="section-5">2.1.0</h2>
<p>New:</p>
<ul>
<li><code>modelsummary()</code> gets a <code>gof_function</code> argument which accepts functions to extract custom information from models.</li>
<li><code>flextable</code>: Support spanning column headers</li>
<li><code>datasummary_correlation()</code> gets a <code>star</code> argument.</li>
<li><code>datasummary_correlation()</code> accepts objects produced by the <code>correlation</code> package.</li>
<li><code>datasummary_balance()</code>: <code>formula</code> can now include variables on the left-hand side to indicate the subset of columns to summarize: <code>datasummary_balance(mpg + hp ~ am, data = mtcars)</code> Thanks to <a href="https://github.com/etiennebacher"><span class="citation" data-cites="etiennebacher">@etiennebacher</span></a> for feature request [#751](https://github.com/vincentarelbundock/modelsummary//issues/751).</li>
<li>Unnecessary text printed to screen on some F sta computations is now suppressed.</li>
<li>Update to <code>tinytable</code> 0.3.0</li>
</ul>
<p>Bugs:</p>
<ul>
<li><code>escape</code> argument not respected in <code>datasummary_df()</code>. Thanks to <a href="https://github.com/adamaltmejd"><span class="citation" data-cites="adamaltmejd">@adamaltmejd</span></a> for report [#740](https://github.com/vincentarelbundock/modelsummary//issues/740)</li>
<li><code>datasummary_correlation()</code> supports <code>data.table</code>. Thanks to volatilehead on Twitter for report [#737](https://github.com/vincentarelbundock/modelsummary//issues/737).</li>
<li>Accepts named <code>estimate</code> argument when using shape and statistics are horizontal. Thanks to <a href="https://github.com/iago-pssjd"><span class="citation" data-cites="iago-pssjd">@iago-pssjd</span></a> for report [#745](https://github.com/vincentarelbundock/modelsummary//issues/745).</li>
<li>Labelled values but no label for variable broke <code>datasummary()</code>. Thanks to <a href="https://github.com/marklhc"><span class="citation" data-cites="marklhc">@marklhc</span></a> for report [#752](https://github.com/vincentarelbundock/modelsummary//issues/752).</li>
<li><code>coef_map</code> does not work when there is a <code>group</code>. Thanks to <a href="https://github.com/mccarthy-m-g"><span class="citation" data-cites="mccarthy-m-g">@mccarthy-m-g</span></a> for report [#757](https://github.com/vincentarelbundock/modelsummary//issues/757).</li>
<li><code>kableExtra</code>: fix spanning column headers when using the <code>shape</code> argument.</li>
<li>Multiple footnotes and line breaks in footnotes are now allowed in <code>tinytable</code> output. Thanks to</li>
</ul>
</section>
<section id="section-6" class="level2">
<h2 class="anchored" data-anchor-id="section-6">2.0.0</h2>
<p>MAJOR BREAKING CHANGE: The default output format is now <code>tinytable</code> instead of <code>kableExtra</code>. Learn more about <code>tinytable</code> here:</p>
<p>https://vincentarelbundock.github.io/tinytable/</p>
<p>To revert to the previous behavior persistently, users can call:</p>
<p>library(modelsummary) config_modelsummary(factory_default = “kableExtra”)</p>
<p>Other breaking changes:</p>
<ul>
<li>The <code>statistic_override</code> argument was replaced by <code>vcov</code> over 1 year ago, with appropriate deprecation warnings. It is now fully removed.</li>
<li>The <code>group</code> argument was replaced by <code>shape</code> several releases ago. It is now fully removed.</li>
<li><code>datasummary_skim()</code>
<ul>
<li>histograms are only available with the <code>tinytable</code> backend. This allows a lot of code simplification and more customization.</li>
<li>The order of arguments <code>type</code> and <code>output</code> is switched for consistency with other functions.</li>
<li><code>histogram</code> argument is deprecated.</li>
</ul></li>
</ul>
<p>New features:</p>
<ul>
<li><code>datasummary_skim()</code>:
<ul>
<li>New <code>type="all"</code> by default to display both numeric and categorical variables in a single table with distinct panels. This feature is only available with the <code>tinytable</code> backend (default).</li>
<li><code>by</code> argument allows summarizing numeric variables by group.</li>
<li><code>fun_numeric</code> argument accepts a list of functions to control the summary columns.</li>
</ul></li>
<li><code>modelsummary()</code>:
<ul>
<li><code>statistic</code> and <code>estimate</code> can be specified as named vectors to control the names of statistics when displayed in different columns using the <code>shape</code> argument. (Thanks to <a href="https://github.com/mps9506"><span class="citation" data-cites="mps9506">@mps9506</span></a> for bug report [#722](https://github.com/vincentarelbundock/modelsummary//issues/722))</li>
<li><code>modelsummary(panels, shape = "cbind")</code> automatically adds column-spanning labels when <code>panels</code> is a named nested list of models.</li>
</ul></li>
<li><code>config_modelsummary()</code> gets a <code>startup_message</code> argument to silence the startup message persistently.</li>
<li>Improved documentation and vignettes, providing clearer instructions and examples.</li>
<li>Updated tests and snapshots to ensure reliability and consistency across changes.</li>
</ul>
<p>Bug fixes:</p>
<ul>
<li>Fixed Issue [#399](https://github.com/vincentarelbundock/modelsummary//issues/399): datasummary_balance() siunitx formatting.</li>
<li>Fixed Issue [#782](https://github.com/vincentarelbundock/modelsummary//issues/782): Useless warning in some <code>modelplot()</code> calls. Thanks to <a href="https://github.com/iago-pssjd"><span class="citation" data-cites="iago-pssjd">@iago-pssjd</span></a> for the report and <a href="https://github.com/florence-laflamme"><span class="citation" data-cites="florence-laflamme">@florence-laflamme</span></a> for the fix.</li>
<li>Addressed various bugs and made optimizations for better performance and user experience.</li>
</ul>
</section>
<section id="section-7" class="level2">
<h2 class="anchored" data-anchor-id="section-7">1.4.5</h2>
<ul>
<li><code>tinytable</code> supports histograms in <code>datasummary_skim()</code></li>
<li><code>config_modelsummary()</code> supports <code>tinytable</code> factory.</li>
</ul>
</section>
<section id="section-8" class="level2">
<h2 class="anchored" data-anchor-id="section-8">1.4.4</h2>
<ul>
<li>Support the <code>tinytable</code> package as an output format (“factory”): https://vincentarelbundock.github.io/tinytable/</li>
<li>Quarto: <code>md</code> output format is recognized.</li>
<li><code>options(modelsummary_factory_default)</code> is respected, even in qmd-&gt;md documents.</li>
</ul>
<p>Bugs:</p>
<ul>
<li>Some omitted coefficients with <code>I()</code> operator in formulas. Issue [#693](https://github.com/vincentarelbundock/modelsummary//issues/693).</li>
</ul>
</section>
<section id="section-9" class="level2">
<h2 class="anchored" data-anchor-id="section-9">1.4.3</h2>
<p>Misc:</p>
<ul>
<li>Duplicate values in <code>shape</code> groups are removed automatically for cleaner labels.</li>
<li>“Title” line no longer indented in markdown tables. Thanks to Ryan Briggs for report [#671](https://github.com/vincentarelbundock/modelsummary//issues/671).</li>
</ul>
<p>Bugs:</p>
<ul>
<li>Small p values were not displayed properly in HTML output using <code>kableExtra</code>. Issue [#669](https://github.com/vincentarelbundock/modelsummary//issues/669).</li>
</ul>
</section>
<section id="section-10" class="level2">
<h2 class="anchored" data-anchor-id="section-10">1.4.2</h2>
<p>New:</p>
<ul>
<li>Minimal support for <code>Typst</code> output, with auto-detection in Quarto documents.</li>
<li><code>strip</code> argument in <code>dvnames</code>.</li>
<li><code>s.value</code> statistic is now available whenever <code>p.value</code> is available. See Greenland (2019).</li>
<li><code>datasummary_skim()</code> now includes histograms in <code>gt</code> tables.</li>
</ul>
<p>Bugs:</p>
<ul>
<li>GOF term names get escaped in LaTeX. Thanks to <a href="https://github.com/shreyasgm"><span class="citation" data-cites="shreyasgm">@shreyasgm</span></a> for reviving Issue [#546](https://github.com/vincentarelbundock/modelsummary//issues/546).</li>
<li>Conflict with <code>furrr</code> generated errors for some models. Thanks to <a href="https://github.com/sammo3182"><span class="citation" data-cites="sammo3182">@sammo3182</span></a> for Issue [#647](https://github.com/vincentarelbundock/modelsummary//issues/647).</li>
</ul>
</section>
<section id="section-11" class="level2">
<h2 class="anchored" data-anchor-id="section-11">1.4.1</h2>
<p>New:</p>
<ul>
<li><code>fmt_sci()</code> can now be used in the <code>fmt</code> argument for rounding with scientific notation.</li>
</ul>
<p>Bugs:</p>
<ul>
<li>Group separators respect <code>add_rows</code> with <code>shape="rbind"</code>. Thanks to <a href="https://github.com/lrose1"><span class="citation" data-cites="lrose1">@lrose1</span></a> for Report [#626](https://github.com/vincentarelbundock/modelsummary//issues/626).</li>
<li>Bad column with horizontal models in <code>shape</code> and grouped estimates. Thanks to <a href="https://github.com/iago-pssjd"><span class="citation" data-cites="iago-pssjd">@iago-pssjd</span></a> for Report [#631](https://github.com/vincentarelbundock/modelsummary//issues/631).</li>
<li><code>coef_rename=TRUE</code> bug with grouped estimates. Thanks to <a href="https://github.com/iago-pssjd"><span class="citation" data-cites="iago-pssjd">@iago-pssjd</span></a> for Report [#631](https://github.com/vincentarelbundock/modelsummary//issues/631).</li>
<li>Upstream issue [#881](https://github.com/vincentarelbundock/modelsummary//issues/881) in <code>parameters</code> meant that <code>vcov</code> was no longer used for confidence intervals.</li>
</ul>
</section>
<section id="section-12" class="level2">
<h2 class="anchored" data-anchor-id="section-12">1.4.0</h2>
<ul>
<li>Built-in support for markdown tables.</li>
<li>Package no longer depends on <code>kableExtra</code>. Recommends an additional install for other formats.</li>
<li>Persistent configuration of default output format: <code>config_modelsummary(factory_default = "gt")</code></li>
<li><code>shape = "rcollapse"</code> and <code>shape = "rbind"</code></li>
<li><code>glance_custom()</code> can drop GOF by assigning <code>NA</code>: https://stackoverflow.com/questions/75215355/assigning-different-coefficient-names-and-goodness-of-fit-statistics-to-differen</li>
<li>When a <code>statistic</code> is not available, <code>modelsummary</code> prints an empty cell instead of returning an error.</li>
<li>“” works in <code>title</code> even when <code>escape=TRUE</code></li>
<li>Multiple <code>fixest_multi</code> objects supported.</li>
<li><code>options(modelsummary_future = FALSE)</code> disables <code>future</code> parallelism.</li>
</ul>
<p>Bug fixes:</p>
<ul>
<li><code>statistic=NULL</code> is now respected when <code>shape="rbind"</code>. Thanks to Panos Mavros for report [#620](https://github.com/vincentarelbundock/modelsummary//issues/620).</li>
<li><code>get_estimates()</code> supports <code>vcov</code> string shortcuts and formulas. Thanks to <a href="https://github.com/ethans-carl"><span class="citation" data-cites="ethans-carl">@ethans-carl</span></a> for report [#605](https://github.com/vincentarelbundock/modelsummary//issues/605).</li>
<li>Quarto and Rmarkdown documents include <code>situnix</code> in header automatically for decimal alignement with <code>align="ddd"</code></li>
<li><code>escape</code> is now respected by <code>modelsummary</code> with <code>shape="rbind"</code>. Thanks to <a href="https://github.com/chickymonkeys"><span class="citation" data-cites="chickymonkeys">@chickymonkeys</span></a> for report [#622](https://github.com/vincentarelbundock/modelsummary//issues/622).</li>
</ul>
</section>
<section id="section-13" class="level2">
<h2 class="anchored" data-anchor-id="section-13">1.3.0</h2>
<p>Breaking change:</p>
<ul>
<li>The default column label style in <code>modelsummary()</code> has changed from “Model 1” to “(1)”. The benefits are: labels are no longer in English by default; use less horizontal space; eliminate the “Model” redundancy. Unfortunately, this could break code in some edge cases where users rely on column names to manipulate tables. The old behavior can be restored by calling: <code>options(modelsummary_model_labels="model")</code></li>
</ul>
<p>New features:</p>
<ul>
<li><code>shape="rbind"</code> to stack multiple regression tables and create “panels” with labelled groups of models.</li>
<li><code>fmt</code>: new helper functions for different formatting styles
<ul>
<li><code>fmt = fmt_decimal(2)</code>: decimal digits</li>
<li><code>fmt = fmt_decimal(digits = 2, pdigits = 4)</code>: decimal digits with p value-specific setting</li>
<li><code>fmt = fmt_sprintf("%.3f")</code>: <code>sprintf()</code> decimal</li>
<li><code>fmt = fmt_sprintf("%.3e")</code>: <code>sprintf()</code> scientific</li>
<li><code>fmt = fmt_significant(3)</code>: significant digits</li>
<li><code>fmt = fmt_statistic("estimate" = 2, "std.error" = 3)</code>: statistic-specific formatting</li>
<li><code>fmt = fmt_term("(Intercept)" = 2, "hp" = 3)</code>: term-specific formatting</li>
<li><code>fmt = fmt_identity()</code>: raw values</li>
</ul></li>
<li>New styles for default column labels in <code>modelsummary</code>, such as Roman Numerals or letters in parentheses.
<ul>
<li>Set the style with a global option: <code>options(modelsummary_model_labels = "roman")</code></li>
<li>Supported styles: “model”, “arabic”, “letters”, “roman”, “(arabic)”, “(letters)”, “(roman)””</li>
</ul></li>
<li><code>modelplot(draw = FALSE)</code> now returns a <code>p.value</code> column. This allows conditional aesthetics (see the <code>modelplot</code> vignette).</li>
<li>Better integration with the <code>marginaleffects</code> package.</li>
</ul>
<p>Bugs:</p>
<ul>
<li>Some <code>fixest</code> models returns useless “group.x” and “group.y” columns. Isse [#591](https://github.com/vincentarelbundock/modelsummary//issues/591). Thanks to Adam Altmejd for the report.</li>
</ul>
</section>
<section id="section-14" class="level2">
<h2 class="anchored" data-anchor-id="section-14">1.2.0</h2>
<p>Breaking change:</p>
<ul>
<li>With the <code>shape</code> and <code>output="dataframe"</code> arguments, there always used to be a <code>group</code> column. Now, this column has the same name as the variable in the <code>shape</code> formula (“response”, “component”, etc.).</li>
</ul>
<p>New features:</p>
<ul>
<li><code>shape</code> can include multiple groups.</li>
<li><code>coef_rename</code> can be an unnamed vector of length equal to the number of terms in the final table, obtained after <code>coef_map</code> and <code>coef_omit</code> are applied and models are merged.</li>
<li><code>coef_omit</code> accepts numeric indices. Positive values: coefficients to omit. Negative values: coefficients to keep.</li>
<li><code>datasummary_skim</code>: Increased maximum number of variables to 250.</li>
<li>Quarto notebooks compile to Word and Markdown automatically.</li>
</ul>
<p>Bug fixes:</p>
<ul>
<li>Order of notes preserved in some output format (Issue [#577](https://github.com/vincentarelbundock/modelsummary//issues/577))</li>
</ul>
</section>
<section id="section-15" class="level2">
<h2 class="anchored" data-anchor-id="section-15">1.1.0</h2>
<p>Breaking change:</p>
<ul>
<li>Requires <code>siunitx</code> version 3.0.25 LaTeX package.</li>
<li>The <code>title</code> argument now respects the <code>escape</code> argument for all <code>kableExtra</code> output formats. This can break tables in which users manually escaped titles.</li>
</ul>
<p>New features:</p>
<ul>
<li>“d” is accepted for decimal-alignment in the <code>align</code> argument for all <code>output</code> formats. <code>modelsummary(mod, align = "ld")</code></li>
<li>New <code>update_modelsummary()</code> function makes it easy to install the dev versions of <code>modelsummary</code> and its dependencies (mostly useful for Vincent and people who report bugs).</li>
<li>Rounding: display at least one significant digit by default.</li>
<li>Automatic renaming of <code>haven</code> labels in <code>modelsummary()</code>, <code>datasummary()</code>, <code>datasummary_skim()</code></li>
<li>Allow <code>output = "filename.csv"</code></li>
<li>Allow <code>output = "filename.xlsx"</code></li>
<li><code>add_columns</code> argument supported in <code>modelsummary()</code></li>
<li><code>datasummary_balance</code> supports the <code>stars</code> argument.</li>
<li>Allow stars and confidence intervals with <code>align = "d"</code> column.</li>
</ul>
<p>Bug fixes:</p>
<ul>
<li>In some locales, the HTML minus sign created problems in the output. We only use it in “known” locales.</li>
<li>Many minor bug fixes</li>
</ul>
</section>
<section id="section-16" class="level2">
<h2 class="anchored" data-anchor-id="section-16">1.0.2</h2>
<ul>
<li>Minor release to fix CRAN failure</li>
</ul>
</section>
<section id="section-17" class="level2">
<h2 class="anchored" data-anchor-id="section-17">1.0.1</h2>
<ul>
<li><code>shape</code> argument accepts interactions with the colon “:” character. This combines two columns into one, which can be useful to display terms and group names in a single column.</li>
<li>Parallelization using <code>parallel::mclapply</code>. See <code>?modelsummary</code></li>
<li><code>modelsummary</code> no longer computes confidence intervals when not necessary, which can save some time. Also see: <code>conf_level=NULL</code></li>
<li>Added log likelihood to GOF for lm and glm models.</li>
<li>Removed extraneous warnings</li>
<li>Bug fixes</li>
</ul>
</section>
<section id="section-18" class="level2">
<h2 class="anchored" data-anchor-id="section-18">1.0.0</h2>
<p>This first major release accompanies the publication of an article in the Journal of Statistical Software:</p>
<p>Arel-Bundock, Vincent (2022). “modelsummary: Data and Model Summaries in R.” <em>Journal of Statistical Software</em>, <em>103</em>(1), 1-23. doi:10.18637/jss.v103.i01 <a href="https://doi.org/10.18637/jss.v103.i01" class="uri">https://doi.org/10.18637/jss.v103.i01</a>.’</p>
<p>If you like <code>modelsummary</code>, please cite the JSS article and tell your friends about it.</p>
<p>Minor changes:</p>
<ul>
<li><code>gof_map="all"</code> includes all available statistics. <code>gof_map="none"</code> excludes all statistics.</li>
<li>Bug fixes</li>
</ul>
</section>
<section id="section-19" class="level2">
<h2 class="anchored" data-anchor-id="section-19">0.11.1</h2>
<ul>
<li>Better printout for term names in mixed-effects models</li>
<li>{brms} and {stanreg} models now extracted with <code>diagnostic=NULL</code> and <code>test=NULL</code> by default for speed.</li>
</ul>
</section>
<section id="section-20" class="level2">
<h2 class="anchored" data-anchor-id="section-20">0.11.0</h2>
<p>Breaking changes:</p>
<ul>
<li><code>modelsummary_wide</code> is no longer available. Use the <code>shape</code> argument of <code>modelsummary</code> instead.</li>
<li><code>modelsummary</code> now uses the <code>easystats</code> packages (<code>performance</code> and <code>parameters</code>) to extract estimates and goodness-of-fit statistics instead of <code>broom</code>. This can be reverted by setting a global option: <code>options(modelsummary_get="broom")</code>. This change aims to (1) increase consistency across models, (2) improve the developers’ ability to push bug fixes upstream when necessary, and (3) improve support for mixed effects, bayesian, and GAM models. The two main drawbacks are: (a) The set of printed statistics may be slightly different from previous versions of <code>modelsummary</code> (b) The group identifiers used in the <code>shape</code> formula will also be different for certain models (e.g., in <code>nnet::multinom</code>, <code>y.level</code> becomes <code>response</code>).</li>
</ul>
<p>New features:</p>
<ul>
<li>The <code>shape</code> argument accepts a formula and can reshape information in myriad ways. Deprecates the <code>group</code> argument. Examples:
<ul>
<li><code>~ statistic</code>: statistics are shown horizontally in distinct columns.</li>
<li><code>model ~ term</code>: models in rows and terms in columns.</li>
<li><code>term + y.level + statistic ~ model</code>: grouped coefficients for multivariate outcome in <code>nnet::multinom</code></li>
<li><code>y.level ~ model</code>: partial match is the same as the previous formula</li>
</ul></li>
<li>Format distinct statistics differently by passing a named list to <code>fmt</code>:
<ul>
<li><code>modelsummary(mod, fmt = list(estimate = 2, std.error = 1, rmse = 4))</code></li>
</ul></li>
<li>Use <code>glue</code> to apply functions to numeric values by setting <code>fmt = NULL</code>. Example:
<ul>
<li><code>modelsummary(model, fmt = NULL, estimate = "{log(estimate)}")</code></li>
</ul></li>
<li>Update for breaking changes after fixest 0.10.4</li>
</ul>
<p>Bug fixes:</p>
<ul>
<li><code>group_map</code> rename issue</li>
<li>Residual standard error mistakenly labelled “RMSE” in <code>lm</code> models.</li>
<li><code>datasummary_skim</code> output to jpg should now works</li>
<li><code>escape</code> fixes</li>
</ul>
</section>
<section id="section-21" class="level2">
<h2 class="anchored" data-anchor-id="section-21">0.10.0</h2>
<ul>
<li>New <code>exponentiate</code> argument for <code>modelsummary()</code> and <code>modelplot()</code></li>
<li><code>gof_map</code> accepts a vector such as <code>c("rmse", "nobs", "r.squared")</code></li>
<li>Drop <code>rlang</code> dependency</li>
<li>Bug fixes</li>
</ul>
</section>
<section id="section-22" class="level2">
<h2 class="anchored" data-anchor-id="section-22">0.9.6</h2>
<p><code>datasummary_balance</code>:</p>
<ul>
<li>Accepts <code>~ 1</code> as a formula to summarize all data.</li>
</ul>
<p>Misc:</p>
<ul>
<li>documentation improvements</li>
<li>RMSE included by default in models of class <code>lm</code></li>
</ul>
</section>
<section id="section-23" class="level2">
<h2 class="anchored" data-anchor-id="section-23">0.9.5</h2>
<p><code>modelsummary</code>:</p>
<ul>
<li><code>vcov</code> strings like <code>HC1</code> and <code>Robust</code> are now case-insensitive</li>
<li><code>gof_map</code> now accepts a data.frame or tibble with a <code>fmt</code> list-column which includes functions (see Examples in docs)</li>
<li><code>R2</code> is no longer computed by default for bayesian and mixed effects models. An informative one-time warning is printed about the <code>metrics</code> argument.</li>
</ul>
<p><code>datasummary_skim</code>:</p>
<ul>
<li>Histograms now work in Jupyter</li>
<li>Bugfix: harmless error message is no longer printed</li>
</ul>
<p><code>kableExtra</code> factory:</p>
<ul>
<li>The <code>col.names</code> argument can now be passed to <code>kableExtra::kbl</code> through the … ellipsis.</li>
</ul>
<p>Misc:</p>
<ul>
<li>Many small improvements to the vignettes and docs</li>
<li><code>output = "github_document"</code> is now supported</li>
</ul>
</section>
<section id="section-24" class="level2">
<h2 class="anchored" data-anchor-id="section-24">0.9.4</h2>
<ul>
<li>Bug fix: siunitx and rounding NA</li>
</ul>
</section>
<section id="section-25" class="level2">
<h2 class="anchored" data-anchor-id="section-25">0.9.3</h2>
<p><code>modelsummary</code>:</p>
<ul>
<li>F statistic takes into account <code>vcov</code> argument</li>
<li>Support group = group ~ model + term</li>
</ul>
<p><code>datasummary_balance</code>:</p>
<ul>
<li>Weighted means and standard deviations are now supported. Counts and percentages are not, but raise a warning.</li>
</ul>
<p>Misc:</p>
<ul>
<li>Bugfix: rounding in LaTeX w/ siunitx and NaN entries.</li>
<li>output=‘jupyter’ no longer prints an extraneous TRUE to the notebook</li>
</ul>
</section>
<section id="section-26" class="level2">
<h2 class="anchored" data-anchor-id="section-26">0.9.2</h2>
<p><code>modelsummary</code>:</p>
<ul>
<li>Improved <code>vcov</code> argument handling for <code>fixest</code> models (<a href="https://github.com/vincentarelbundock/modelsummary//issues/357">#357</a> by <a href="https://github.com/grantmcdermott"><span class="citation" data-cites="grantmcdermott">@grantmcdermott</span></a>)</li>
<li>Fix display of <code>fixest::i()</code> variables and interactions (<a href="https://github.com/vincentarelbundock/modelsummary//issues/361">#361</a> by <a href="https://github.com/grantmcdermott"><span class="citation" data-cites="grantmcdermott">@grantmcdermott</span></a>)</li>
<li>Consistent display of clustered SEs (<a href="https://github.com/vincentarelbundock/modelsummary//issues/356">#356</a>, [#363](https://github.com/vincentarelbundock/modelsummary//issues/363) and [#366](https://github.com/vincentarelbundock/modelsummary//issues/366) by <a href="https://github.com/grantmcdermott"><span class="citation" data-cites="grantmcdermott">@grantmcdermott</span></a>)</li>
</ul>
<p><code>datasummary_correlation</code>:</p>
<ul>
<li><code>add_rows</code> and <code>add_columns</code> arguments are now available here.</li>
</ul>
<p>Misc:</p>
<ul>
<li>Global options for output factories are renamed: <code>modelsummary_factory_default</code>, <code>modelsummary_factory_html</code>, etc.</li>
<li>Hot fix for change in R-devel behavior or <code>intersect</code></li>
</ul>
<p>Bug fixes:</p>
<ul>
<li><code>datasummary_balance</code>: escape variable names when <code>escape=TRUE</code></li>
<li>Blogdown LaTeX dependency bug when output is HTML</li>
</ul>
</section>
<section id="section-27" class="level2">
<h2 class="anchored" data-anchor-id="section-27">0.9.1</h2>
<p>Breaking change:</p>
<ul>
<li>Support for <code>dcolumn</code> for dot-aligned columns is deprecated. Use “d” in the <code>align</code> argument instead.</li>
</ul>
<p>Other changes:</p>
<ul>
<li>LaTeX output: Numeric entries are wrapped in the <code>\num{}</code> function from the <code>siunitx</code> package by default. This produces much nicer formatting. This can be disabled with a global option. See <code>?modelsummary</code></li>
<li>The <code>align</code> argument accepts a “d” column for dot-alignment using the <code>siunitx</code> LaTeX package: <code>align="ldd"</code>.</li>
<li>HTML tables display proper minus signs.</li>
<li>New <code>escape</code> argument in most table-building functions.</li>
<li>LaTeX output accepts the <code>threeparttable=TRUE</code> argument through <code>...</code></li>
<li>No more dependency on <code>tidyr</code></li>
</ul>
<p><code>modelsummary</code>:</p>
<ul>
<li><code>group</code>: The order of terms in the formula determines the order of rows/columns</li>
</ul>
<p><code>modelsummary_wide</code>:</p>
<ul>
<li>Note: This function will eventually be deprecated</li>
<li>Bugfix with statistic=NULL.</li>
</ul>
<p><code>modelplot</code>:</p>
<ul>
<li>Preserves order of models in the user-supplied list</li>
</ul>
<p><code>datasummary_crosstab</code>:</p>
<ul>
<li><code>statistic=NULL</code> produces a very basic crosstab</li>
</ul>
<p><code>datasummary_crosstab</code>:</p>
<ul>
<li>Default alignment “lrrrrr” consistent with other datasummary_* functions</li>
</ul>
</section>
<section id="section-28" class="level2">
<h2 class="anchored" data-anchor-id="section-28">0.8.1</h2>
<p><code>modelsummary</code>:</p>
<ul>
<li>Disable stars footnote with <code>options("modelsummary_stars_note" = FALSE)</code></li>
<li><code>longtable=TRUE</code> works for LaTeX output</li>
<li>Interactions with “:” are no longer converted to “x” when <code>coef_map</code> or <code>coef_rename</code> are used.</li>
<li><code>group = model ~ term + group</code> is now supported.</li>
</ul>
<p><code>datasummary_skim</code>:</p>
<ul>
<li><code>datasummary_skim("categorical")</code> keeps <code>NA</code> by default. Users can convert variables to factors before calling <code>datasummary_skim</code> to exclude <code>NA</code>.</li>
</ul>
<p>Other:</p>
<ul>
<li>Improved warnings for bad calls: <code>modelsummary(model1, model2)</code></li>
<li><code>gt</code> titles use the new <code>caption</code> argument in the <code>gt 0.3.0</code> function</li>
<li>Bug fix: Overaggressive tests for glue strings prevented functions inside {}</li>
</ul>
</section>
<section id="section-29" class="level2">
<h2 class="anchored" data-anchor-id="section-29">0.8.0</h2>
<p>Breaking change:</p>
<ul>
<li>The default significance markers <code>stars=TRUE</code> have been updated to be consistent with the default output from base R (e.g., in summary.lm). The new significance thresholds are: “+” p &lt; 0.1, “<em>” p &lt; 0.05, ”<strong>” p &lt; 0.01, ”</strong></em>” p &lt; 0.001</li>
</ul>
<p><code>datasummary_crosstab</code>:</p>
<ul>
<li>New function to produce cross-tabulations</li>
</ul>
<p><code>datasummary</code>:</p>
<ul>
<li><code>N</code> is smart enough to return either the number of elements in a subset or the number of non-missing observations in a variable</li>
</ul>
<p><code>datasummary_balance</code>:</p>
<ul>
<li>Keeps <code>NA</code>s in factor variables by default. Users can convert their variables with the <code>factor()</code> function to omit <code>NA</code>s automatically.</li>
</ul>
<p><code>modelsummary</code>:</p>
<ul>
<li>themes can be set using global options (experimental)</li>
<li>new vcov options: “bootstrap”, “HAC”, “NeweyWest”, “Andrews”, “panel-corrected”, “weave”, “outer-product”</li>
<li>A valid <code>get_gof</code> (<code>glance</code>) is now optional.</li>
<li>… is pushed through to <code>sandwich</code>, which allows things like: <code>modelsummary(model, vcov = "bootstrap", R = 1000, cluster = "firm")</code></li>
</ul>
<p>Other:</p>
<ul>
<li>Jupyter notebook support via <code>output="jupyter"</code></li>
<li>Bug fixes</li>
</ul>
</section>
<section id="section-30" class="level2">
<h2 class="anchored" data-anchor-id="section-30">0.7.0</h2>
<p><code>modelsummary</code>:</p>
<ul>
<li>new arguments for <code>modelsummary</code>: <code>group</code> and <code>group_map</code> for grouped parameters (e.g., outcome levels in multinomial logit or components of gamlss model).</li>
<li><code>dvnames()</code> makes it easy to get dependent variable column titles (thanks to <a href="https://github.com/NickCH-K"><span class="citation" data-cites="NickCH-K">@NickCH-K</span></a>)</li>
<li><code>output="modelsummary_list"</code> to save a lightweight list-based representation of the table which can be saved and fed to <code>modelsummary</code> once more to get a full table.</li>
<li><code>vcov</code> adds a row to note the type of standard errors.</li>
<li><code>modelsummary</code> accepts a single model with multiple <code>vcov</code>s.</li>
<li><code>get_gof</code> forwards … to <code>model_performance</code></li>
<li><code>coef_map</code> accepts unnamed vectors for easy subsetting</li>
<li><code>fixest::fixest_multi</code> support</li>
<li><code>options(modelsummary_get)</code> to set the order of extraction functions to use under the hood (broom vs.&nbsp;easystats vs.&nbsp;all)</li>
<li><code>metrics</code> argument of <code>performance::model_performance</code> is available via <code>modelsummary</code>’s … ellipsis to limit the GOF statistics in Bayesian models.</li>
<li>users can omit the stars legend note by using glue strings: <code>estimate="{estimate}{stars}"</code></li>
<li>output=“html” can use <code>gt</code> by setting <code>options(modelsummary_factory_html="gt")</code></li>
</ul>
<p><code>datasummary_correlation</code>:</p>
<ul>
<li>passes <code>...</code> forward</li>
<li>new function: <code>datasummary_correlation_format</code></li>
<li><code>datasummary_correlation</code>’s <code>method</code> argument accepts functions and “pearspear” (thanks to <a href="https://github.com/joachim-gassen"><span class="citation" data-cites="joachim-gassen">@joachim-gassen</span></a>)</li>
</ul>
<p><code>datasummary</code>:</p>
<ul>
<li><code>datasummary</code> functions and <code>rounding</code> accept …, big.mark, etc.</li>
</ul>
<p><code>datasummary_skim</code>:</p>
<ul>
<li>now works with haven_labeled numeric</li>
<li>faster tables with bayesian models.</li>
</ul>
<p>Bug fixes and lints</p>
</section>
<section id="section-31" class="level2">
<h2 class="anchored" data-anchor-id="section-31">0.6.6</h2>
<ul>
<li>new output format: latex_tabular</li>
<li><code>tidy_custom</code> allows partial term matches</li>
<li><code>modelsummary(coef_rename)</code> accepts functions</li>
<li>new function <code>coef_rename</code> for use in <code>modelsummary(coef_rename=coef_rename)</code></li>
<li><code>modelplot</code> accepts <code>add_rows</code> to add reference categories</li>
<li>informative error message when estimate or statistic is not available</li>
<li>bug fixes</li>
</ul>
</section>
<section id="section-32" class="level2">
<h2 class="anchored" data-anchor-id="section-32">0.6.5</h2>
<ul>
<li><code>statistic_override</code> becomes <code>vcov</code></li>
<li>vcov accepts shortcuts: “robust”, “stata”, “HC0”, etc.</li>
<li>vcov accepts formulas for clustered SEs: ~group</li>
<li>modelsummary_wide has a new “stacking” argument</li>
<li>html horizontal rule to separate estimates form gof</li>
<li>gof_map accepts list of lists. only needs 3 columns.</li>
<li>support officedown Rmd</li>
<li>estimate accepts a vector for per model estimates</li>
<li>options(modelsummary_default) can be markdown, html, latex</li>
<li>bug: passing arguments through …</li>
<li>bug: stars and rounding</li>
</ul>
</section>
<section id="section-33" class="level2">
<h2 class="anchored" data-anchor-id="section-33">0.6.4</h2>
<ul>
<li>glue format for <code>estimate</code> and <code>statistic</code></li>
<li>easystats support for model info extraction</li>
<li>deprecate statistic_vertical</li>
<li>deprecate extract_models. Use modelsummary(output=“dataframe”) instead.</li>
<li>modelplot pushes … through to modelsummary(output=“dataframe”)</li>
<li>datasummary_skim(type=“dataset”)</li>
<li>gof_map omits by default</li>
<li>datasummary_balance uses row percentages</li>
<li>statistic_override does not require a list</li>
<li>statistic_override accepts a single model</li>
<li>N function for well formatted N in datasummary</li>
<li>Bug fixes</li>
</ul>
</section>
<section id="section-34" class="level2">
<h2 class="anchored" data-anchor-id="section-34">0.6.3</h2>
<ul>
<li>new function: modelsummary_wide</li>
<li>coef_omit and gof_omit use grepl(perl=TRUE)</li>
<li>fmt accepts integer, string or function and respects options(OutDec=“,”)</li>
<li>align argument for modelsummary</li>
<li>align is more liberal to accept dcolumn alignment</li>
<li>glance_custom methods for lfe and fixest</li>
<li>bug fixes</li>
</ul>
</section>
<section id="section-35" class="level2">
<h2 class="anchored" data-anchor-id="section-35">0.6.2</h2>
<ul>
<li>new argument: coef_rename</li>
<li>new function: datasummary_df</li>
<li>preserve term order in modelsummary</li>
<li>refactor datasummary_balance</li>
<li>datasummary_skim uses svg histograms instead of unicode</li>
<li>removed 5 dependencies</li>
<li>pass … to kableExtra::kbl for more customization</li>
<li>test improvements</li>
<li>internal code style</li>
<li>bug fixes</li>
</ul>
</section>
<section id="section-36" class="level2">
<h2 class="anchored" data-anchor-id="section-36">0.6.1</h2>
<ul>
<li>bug fixes</li>
</ul>
</section>
<section id="section-37" class="level2">
<h2 class="anchored" data-anchor-id="section-37">0.6.0</h2>
<ul>
<li>default HTML output factory is now kableExtra</li>
<li>interaction “:” gsubbed by “0d7”</li>
<li>dependencies: removed 1 depends, 3 imports, and 3 suggests</li>
<li>word_document knitr works out-of-the-box</li>
<li>bug fixes</li>
</ul>
</section>
<section id="section-38" class="level2">
<h2 class="anchored" data-anchor-id="section-38">0.5.1</h2>
<ul>
<li>glance_custom.fixest ships with modelsummary</li>
</ul>
</section>
<section id="section-39" class="level2">
<h2 class="anchored" data-anchor-id="section-39">0.5.0</h2>
<ul>
<li>datasummary</li>
<li>datasummary_skim</li>
<li>datasummary_balance</li>
<li>datasummary_correlation</li>
<li>modelplot</li>
<li>allow duplicate model names</li>
<li>bug: can’t use coef_map with multiple statistics (thanks <a href="https://github.com/sbw78"><span class="citation" data-cites="sbw78">@sbw78</span></a>)</li>
<li>bug: wrong number of stars w/ statistic=‘p.value’ (thanks <a href="https://github.com/torfason"><span class="citation" data-cites="torfason">@torfason</span></a>)</li>
<li>output=‘data.frame’. <code>extract</code> is no longer documented.</li>
</ul>
</section>
<section id="section-40" class="level2">
<h2 class="anchored" data-anchor-id="section-40">0.4.1</h2>
<ul>
<li>add_rows now accepts a data.frame with “position” and “section” columns</li>
<li>add_rows_location is deprecated</li>
<li>bug in sanity_output prevented overwriting files</li>
</ul>
</section>
<section id="section-41" class="level2">
<h2 class="anchored" data-anchor-id="section-41">0.4.0</h2>
<ul>
<li>huxtable support</li>
<li>flextable support</li>
<li>estimate argument</li>
<li>fixest tidiers</li>
<li>website and vignette improvements</li>
<li>gof_map additions</li>
<li>glance_custom</li>
<li>tidy_custom</li>
</ul>
</section>
<section id="section-42" class="level2">
<h2 class="anchored" data-anchor-id="section-42">0.3.0</h2>
<ul>
<li>Out-of-the-box Rmarkdown compilation to HTML, PDF, RTF</li>
<li>kableExtra output format for LaTeX and Markdown</li>
<li>Support for <code>threeparttable</code>, colors, and many other LaTeX options</li>
<li>Deprecated arguments: filename, subtitle</li>
<li>Deprecated functions: clean_latex, knit_latex</li>
<li><code>pkgdown</code> website and doc improvements</li>
<li><code>mitools</code> tidiers</li>
<li>New tests</li>
</ul>
</section>
<section id="section-43" class="level2">
<h2 class="anchored" data-anchor-id="section-43">0.2.1</h2>
<ul>
<li>Convenience function to render markdown in row/column labels</li>
<li>bug: breakage when all GOF were omitted</li>
<li>Clean up manual with <a href="https://github.com/keywords"><span class="citation" data-cites="keywords">@keywords</span></a> internal</li>
<li>bug: tidyr import</li>
</ul>
</section>
<section id="section-44" class="level2">
<h2 class="anchored" data-anchor-id="section-44">0.2.0</h2>
<ul>
<li>gt is now available on CRAN</li>
<li>new latex_env argument for knit_latex and clean_latex</li>
<li>bug when all gof omitted</li>
<li>bug in statistic_override with functions</li>
<li>bug caused by upstream changes in tab_style</li>
<li>bug caused by upstream changes in filename=‘rtf’</li>
<li>Allow multiple rows of uncertainty estimates per coefficient</li>
<li>Preserve add_rows order</li>
<li>Display uncertainty estimates next to the coefficient with statistic_vertical = FALSE</li>
<li>Better clean_latex function</li>
<li>Can display R2 and confidence intervals for mice-imputed lm-models</li>
<li>Internal functions have <a href="https://github.com/keywords"><span class="citation" data-cites="keywords">@keywords</span></a> internal to avoid inclusion in docs</li>
<li>Statistic override accepts pre-formatted character vectors</li>
</ul>
</section>
<section id="section-45" class="level2">
<h2 class="anchored" data-anchor-id="section-45">0.1.0</h2>
<ul>
<li>Initial release (gt still needs to be installed from github)</li>
</ul>


</section>
</section>

</main> <!-- /main -->
<script id="quarto-html-after-body" type="application/javascript">
  window.document.addEventListener("DOMContentLoaded", function (event) {
    const icon = "";
    const anchorJS = new window.AnchorJS();
    anchorJS.options = {
      placement: 'right',
      icon: icon
    };
    anchorJS.add('.anchored');
    const isCodeAnnotation = (el) => {
      for (const clz of el.classList) {
        if (clz.startsWith('code-annotation-')) {                     
          return true;
        }
      }
      return false;
    }
    const onCopySuccess = function(e) {
      // button target
      const button = e.trigger;
      // don't keep focus
      button.blur();
      // flash "checked"
      button.classList.add('code-copy-button-checked');
      var currentTitle = button.getAttribute("title");
      button.setAttribute("title", "Copied!");
      let tooltip;
      if (window.bootstrap) {
        button.setAttribute("data-bs-toggle", "tooltip");
        button.setAttribute("data-bs-placement", "left");
        button.setAttribute("data-bs-title", "Copied!");
        tooltip = new bootstrap.Tooltip(button, 
          { trigger: "manual", 
            customClass: "code-copy-button-tooltip",
            offset: [0, -8]});
        tooltip.show();    
      }
      setTimeout(function() {
        if (tooltip) {
          tooltip.hide();
          button.removeAttribute("data-bs-title");
          button.removeAttribute("data-bs-toggle");
          button.removeAttribute("data-bs-placement");
        }
        button.setAttribute("title", currentTitle);
        button.classList.remove('code-copy-button-checked');
      }, 1000);
      // clear code selection
      e.clearSelection();
    }
    const getTextToCopy = function(trigger) {
        const codeEl = trigger.previousElementSibling.cloneNode(true);
        for (const childEl of codeEl.children) {
          if (isCodeAnnotation(childEl)) {
            childEl.remove();
          }
        }
        return codeEl.innerText;
    }
    const clipboard = new window.ClipboardJS('.code-copy-button:not([data-in-quarto-modal])', {
      text: getTextToCopy
    });
    clipboard.on('success', onCopySuccess);
    if (window.document.getElementById('quarto-embedded-source-code-modal')) {
      const clipboardModal = new window.ClipboardJS('.code-copy-button[data-in-quarto-modal]', {
        text: getTextToCopy,
        container: window.document.getElementById('quarto-embedded-source-code-modal')
      });
      clipboardModal.on('success', onCopySuccess);
    }
      var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
      var mailtoRegex = new RegExp(/^mailto:/);
        var filterRegex = new RegExp('/' + window.location.host + '/');
      var isInternal = (href) => {
          return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
      }
      // Inspect non-navigation links and adorn them if external
     var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool):not(.about-link)');
      for (var i=0; i<links.length; i++) {
        const link = links[i];
        if (!isInternal(link.href)) {
          // undo the damage that might have been done by quarto-nav.js in the case of
          // links that we want to consider external
          if (link.dataset.originalHref !== undefined) {
            link.href = link.dataset.originalHref;
          }
        }
      }
    function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
      const config = {
        allowHTML: true,
        maxWidth: 500,
        delay: 100,
        arrow: false,
        appendTo: function(el) {
            return el.parentElement;
        },
        interactive: true,
        interactiveBorder: 10,
        theme: 'quarto',
        placement: 'bottom-start',
      };
      if (contentFn) {
        config.content = contentFn;
      }
      if (onTriggerFn) {
        config.onTrigger = onTriggerFn;
      }
      if (onUntriggerFn) {
        config.onUntrigger = onUntriggerFn;
      }
      window.tippy(el, config); 
    }
    const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
    for (var i=0; i<noterefs.length; i++) {
      const ref = noterefs[i];
      tippyHover(ref, function() {
        // use id or data attribute instead here
        let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
        try { href = new URL(href).hash; } catch {}
        const id = href.replace(/^#\/?/, "");
        const note = window.document.getElementById(id);
        if (note) {
          return note.innerHTML;
        } else {
          return "";
        }
      });
    }
    const xrefs = window.document.querySelectorAll('a.quarto-xref');
    const processXRef = (id, note) => {
      // Strip column container classes
      const stripColumnClz = (el) => {
        el.classList.remove("page-full", "page-columns");
        if (el.children) {
          for (const child of el.children) {
            stripColumnClz(child);
          }
        }
      }
      stripColumnClz(note)
      if (id === null || id.startsWith('sec-')) {
        // Special case sections, only their first couple elements
        const container = document.createElement("div");
        if (note.children && note.children.length > 2) {
          container.appendChild(note.children[0].cloneNode(true));
          for (let i = 1; i < note.children.length; i++) {
            const child = note.children[i];
            if (child.tagName === "P" && child.innerText === "") {
              continue;
            } else {
              container.appendChild(child.cloneNode(true));
              break;
            }
          }
          if (window.Quarto?.typesetMath) {
            window.Quarto.typesetMath(container);
          }
          return container.innerHTML
        } else {
          if (window.Quarto?.typesetMath) {
            window.Quarto.typesetMath(note);
          }
          return note.innerHTML;
        }
      } else {
        // Remove any anchor links if they are present
        const anchorLink = note.querySelector('a.anchorjs-link');
        if (anchorLink) {
          anchorLink.remove();
        }
        if (window.Quarto?.typesetMath) {
          window.Quarto.typesetMath(note);
        }
        if (note.classList.contains("callout")) {
          return note.outerHTML;
        } else {
          return note.innerHTML;
        }
      }
    }
    for (var i=0; i<xrefs.length; i++) {
      const xref = xrefs[i];
      tippyHover(xref, undefined, function(instance) {
        instance.disable();
        let url = xref.getAttribute('href');
        let hash = undefined; 
        if (url.startsWith('#')) {
          hash = url;
        } else {
          try { hash = new URL(url).hash; } catch {}
        }
        if (hash) {
          const id = hash.replace(/^#\/?/, "");
          const note = window.document.getElementById(id);
          if (note !== null) {
            try {
              const html = processXRef(id, note.cloneNode(true));
              instance.setContent(html);
            } finally {
              instance.enable();
              instance.show();
            }
          } else {
            // See if we can fetch this
            fetch(url.split('#')[0])
            .then(res => res.text())
            .then(html => {
              const parser = new DOMParser();
              const htmlDoc = parser.parseFromString(html, "text/html");
              const note = htmlDoc.getElementById(id);
              if (note !== null) {
                const html = processXRef(id, note);
                instance.setContent(html);
              } 
            }).finally(() => {
              instance.enable();
              instance.show();
            });
          }
        } else {
          // See if we can fetch a full url (with no hash to target)
          // This is a special case and we should probably do some content thinning / targeting
          fetch(url)
          .then(res => res.text())
          .then(html => {
            const parser = new DOMParser();
            const htmlDoc = parser.parseFromString(html, "text/html");
            const note = htmlDoc.querySelector('main.content');
            if (note !== null) {
              // This should only happen for chapter cross references
              // (since there is no id in the URL)
              // remove the first header
              if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
                note.children[0].remove();
              }
              const html = processXRef(null, note);
              instance.setContent(html);
            } 
          }).finally(() => {
            instance.enable();
            instance.show();
          });
        }
      }, function(instance) {
      });
    }
        let selectedAnnoteEl;
        const selectorForAnnotation = ( cell, annotation) => {
          let cellAttr = 'data-code-cell="' + cell + '"';
          let lineAttr = 'data-code-annotation="' +  annotation + '"';
          const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
          return selector;
        }
        const selectCodeLines = (annoteEl) => {
          const doc = window.document;
          const targetCell = annoteEl.getAttribute("data-target-cell");
          const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
          const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
          const lines = annoteSpan.getAttribute("data-code-lines").split(",");
          const lineIds = lines.map((line) => {
            return targetCell + "-" + line;
          })
          let top = null;
          let height = null;
          let parent = null;
          if (lineIds.length > 0) {
              //compute the position of the single el (top and bottom and make a div)
              const el = window.document.getElementById(lineIds[0]);
              top = el.offsetTop;
              height = el.offsetHeight;
              parent = el.parentElement.parentElement;
            if (lineIds.length > 1) {
              const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
              const bottom = lastEl.offsetTop + lastEl.offsetHeight;
              height = bottom - top;
            }
            if (top !== null && height !== null && parent !== null) {
              // cook up a div (if necessary) and position it 
              let div = window.document.getElementById("code-annotation-line-highlight");
              if (div === null) {
                div = window.document.createElement("div");
                div.setAttribute("id", "code-annotation-line-highlight");
                div.style.position = 'absolute';
                parent.appendChild(div);
              }
              div.style.top = top - 2 + "px";
              div.style.height = height + 4 + "px";
              div.style.left = 0;
              let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
              if (gutterDiv === null) {
                gutterDiv = window.document.createElement("div");
                gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
                gutterDiv.style.position = 'absolute';
                const codeCell = window.document.getElementById(targetCell);
                const gutter = codeCell.querySelector('.code-annotation-gutter');
                gutter.appendChild(gutterDiv);
              }
              gutterDiv.style.top = top - 2 + "px";
              gutterDiv.style.height = height + 4 + "px";
            }
            selectedAnnoteEl = annoteEl;
          }
        };
        const unselectCodeLines = () => {
          const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
          elementsIds.forEach((elId) => {
            const div = window.document.getElementById(elId);
            if (div) {
              div.remove();
            }
          });
          selectedAnnoteEl = undefined;
        };
          // Handle positioning of the toggle
      window.addEventListener(
        "resize",
        throttle(() => {
          elRect = undefined;
          if (selectedAnnoteEl) {
            selectCodeLines(selectedAnnoteEl);
          }
        }, 10)
      );
      function throttle(fn, ms) {
      let throttle = false;
      let timer;
        return (...args) => {
          if(!throttle) { // first call gets through
              fn.apply(this, args);
              throttle = true;
          } else { // all the others get throttled
              if(timer) clearTimeout(timer); // cancel #2
              timer = setTimeout(() => {
                fn.apply(this, args);
                timer = throttle = false;
              }, ms);
          }
        };
      }
        // Attach click handler to the DT
        const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
        for (const annoteDlNode of annoteDls) {
          annoteDlNode.addEventListener('click', (event) => {
            const clickedEl = event.target;
            if (clickedEl !== selectedAnnoteEl) {
              unselectCodeLines();
              const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
              if (activeEl) {
                activeEl.classList.remove('code-annotation-active');
              }
              selectCodeLines(clickedEl);
              clickedEl.classList.add('code-annotation-active');
            } else {
              // Unselect the line
              unselectCodeLines();
              clickedEl.classList.remove('code-annotation-active');
            }
          });
        }
    const findCites = (el) => {
      const parentEl = el.parentElement;
      if (parentEl) {
        const cites = parentEl.dataset.cites;
        if (cites) {
          return {
            el,
            cites: cites.split(' ')
          };
        } else {
          return findCites(el.parentElement)
        }
      } else {
        return undefined;
      }
    };
    var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
    for (var i=0; i<bibliorefs.length; i++) {
      const ref = bibliorefs[i];
      const citeInfo = findCites(ref);
      if (citeInfo) {
        tippyHover(citeInfo.el, function() {
          var popup = window.document.createElement('div');
          citeInfo.cites.forEach(function(cite) {
            var citeDiv = window.document.createElement('div');
            citeDiv.classList.add('hanging-indent');
            citeDiv.classList.add('csl-entry');
            var biblioDiv = window.document.getElementById('ref-' + cite);
            if (biblioDiv) {
              citeDiv.innerHTML = biblioDiv.innerHTML;
            }
            popup.appendChild(citeDiv);
          });
          return popup.innerHTML;
        });
      }
    }
  });
  </script>
<nav class="page-navigation">
  <div class="nav-page nav-page-previous">
      <a href="./man/update_modelsummary.html" class="pagination-link" aria-label="`update_modelsummary`">
        <i class="bi bi-arrow-left-short"></i> <span class="nav-page-text"><code>update_modelsummary</code></span>
      </a>          
  </div>
  <div class="nav-page nav-page-next">
      <a href="./LICENSE.html" class="pagination-link" aria-label="License">
        <span class="nav-page-text">License</span> <i class="bi bi-arrow-right-short"></i>
      </a>
  </div>
</nav>
</div> <!-- /content -->




</body></html>